/**
 * <strong>Title : OperationService.java<br>
 * </strong> <strong>Package : cn.b.sky.mes.cm.service<br>
 * </strong> <strong>Description : </strong>@类注释说明写在此处@<br>
 * <strong>Create on : 2015年9月30日 下午1:40:40<br>
 * </strong>
 * <p>
 * @author dapeng.li<br>
 * @version <strong>v1.0.0</strong><br>
 * <br>
 *          <strong>修改历史:</strong><br>
 *          修改人 | 修改日期 | 修改描述<br>
 *          -------------------------------------------<br>
 * <br>
 * <br>
 */
package cn.b.sky.mes.cm.service;

import java.util.List;

import cn.b.sky.mes.cm.model.Operation;
import cn.b.sky.mes.cm.model.condition.OperationCondition;
import cn.b.sky.common.model.BatchJobReport;

/**
 * <strong>Title : OperationService.java<br>
 * </strong> <strong>Package : cn.b.sky.mes.cm.service<br>
 * </strong> <strong>Description : </strong>@工序业务接口@<br>
 * <strong>Create on : 2015年9月30日 下午1:40:40<br>
 * </strong>
 * <p>
 * 
 * @author dapeng.li<br>
 * @version <strong>v1.0.0</strong><br>
 * <br>
 *          <strong>修改历史:</strong><br>
 *          修改人 | 修改日期 | 修改描述<br>
 *          -------------------------------------------<br>
 * <br>
 * <br>
 */
public interface OperationService {

  /**
   * <strong>Title : selectOperationList<br>
   * </strong> <strong>Description : </strong>@获取工序列表@<br>
   * <strong>Create on : 2015年9月30日 下午1:44:17<br>
   * </strong>
   * <p>
   * 
   * @param operationCondition
   * @return List<Operation>
   * @throws
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   *          <strong>修改历史:</strong><br>
   *          修改人 | 修改日期 | 修改描述<br>
   *          -------------------------------------------<br>
   * <br>
   * <br>
   */
  List<Operation> selectOperationList(OperationCondition operationCondition);

  /**
   * <strong>Title : getOperationCount<br>
   * </strong> <strong>Description : </strong>@获取工序总数@<br>
   * <strong>Create on : 2015年9月30日 下午1:44:23<br>
   * </strong>
   * <p>
   * 
   * @param operationCondition
   * @return int
   * @throws
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   *          <strong>修改历史:</strong><br>
   *          修改人 | 修改日期 | 修改描述<br>
   *          -------------------------------------------<br>
   * <br>
   * <br>
   */
  int getOperationCount(OperationCondition operationCondition);

  /**
   * <strong>Title : getOperation<br>
   * </strong> <strong>Description : </strong>@根据id获取工序实体@<br>
   * <strong>Create on : 2015年9月30日 下午1:45:07<br>
   * </strong>
   * <p>
   * 
   * @param id
   * @return Operation
   * @throws
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   *          <strong>修改历史:</strong><br>
   *          修改人 | 修改日期 | 修改描述<br>
   *          -------------------------------------------<br>
   * <br>
   * <br>
   */
  Operation getOperation(String id, String siteCode);

  /**
   * <strong>Title : getOperationExactCount<br>
   * </strong> <strong>Description : </strong>@方法注释说明写在此处@<br>
   * <strong>Create on : 2015年9月30日 下午1:46:19<br>
   * </strong>
   * <p>
   * 
   * @param operationCode
   * @return int
   * @throws
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   *          <strong>修改历史:</strong><br>
   *          修改人 | 修改日期 | 修改描述<br>
   *          -------------------------------------------<br>
   * <br>
   * <br>
   */
  int getProcessOperationCount(String operationCode, String siteCode);

  /**
   * <strong>Title : insertOperation<br>
   * </strong> <strong>Description : </strong>@插入工序@<br>
   * <strong>Create on : 2015年9月30日 下午1:46:39<br>
   * </strong>
   * <p>
   * 
   * @param operation
   *            void
   * @throws
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   *          <strong>修改历史:</strong><br>
   *          修改人 | 修改日期 | 修改描述<br>
   *          -------------------------------------------<br>
   * <br>
   * <br>
   */
  void insertOperation(Operation operation);

  /**
   * <strong>Title : updateOperation<br>
   * </strong> <strong>Description : </strong>@更新工序@<br>
   * <strong>Create on : 2015年9月30日 下午1:47:00<br>
   * </strong>
   * <p>
   * 
   * @param operation
   *            void
   * @throws
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   *          <strong>修改历史:</strong><br>
   *          修改人 | 修改日期 | 修改描述<br>
   *          -------------------------------------------<br>
   * <br>
   * <br>
   */
  void updateOperation(Operation operation);

  /**
   * <strong>Title : deleteOperations<br>
   * </strong> <strong>Description : </strong>@删除工序@<br>
   * <strong>Create on : 2015年9月30日 下午1:47:17<br>
   * </strong>
   * <p>
   * 
   * @param operations
   * @return boolean
   * @throws
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   *          <strong>修改历史:</strong><br>
   *          修改人 | 修改日期 | 修改描述<br>
   *          -------------------------------------------<br>
   * <br>
   * <br>
   */
  BatchJobReport deleteOperations(String operationCode, String siteCode);

  /**
   * <strong>Title : getOperationExactCount<br>
   * </strong> <strong>Description : </strong>@方法注释说明写在此处@<br>
   * <strong>Create on : 2015年9月30日 下午3:15:17<br>
   * </strong>
   * <p>
   * 
   * @param operationCode
   * @return int
   * @throws
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   *          <strong>修改历史:</strong><br>
   *          修改人 | 修改日期 | 修改描述<br>
   *          -------------------------------------------<br>
   * <br>
   * <br>
   */
  int getOperationExactCount(String operationCode, String siteCode);

  /**
   * 
   * <strong>Title : selectOperationSuggest<br>
   * </strong> <strong>Description : </strong>工序查找建议<br>
   * <strong>Create on : 2016-4-11 下午4:29:46<br>
   * </strong>
   * <p>
   * 
   * @param operationCondition
   * @return List<Operation>
   * @throws
   * @author lidapeng<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   *          <strong>修改历史:</strong><br>
   *          修改人 | 修改日期 | 修改描述<br>
   *          -------------------------------------------<br>
   * <br>
   * <br>
   */
  List<Operation> selectOperationSuggest(OperationCondition operationCondition);

}
